Method and apparatus for an automatic recovery keyboard for slate tablet computers

ABSTRACT

A method and apparatus for reimaging of a computing device are provided. The apparatus may include a recovery device which connects to a computing device via a communication network or a connector. The recovery device may have the capability to retrieve data from and to transfer data to the computing device to simulate inputs of an input device. Sometimes the simulated inputs are in response to a prompt from the computing device for an input response. The recovery device may reimage software applications, operating systems, and data to replace and/or fix corrupted or damaged portions of information stored on a memory of the computing device without the need for other input devices.

FIELD OF THE INVENTION

The present invention relates generally to the recovery of computingdevices due to damage or corruption, for example, by viruses, bad datatransfers, writing errors, improper shutdowns, etc. resulting in theneed to reimage software and/or data. More particularly, the presentinvention relates to the re-imaging of slate tablet computers in amanner not requiring the use of a certain peripheral devices such as,for example, a keyboard or an external DVD-ROM device.

BACKGROUND OF THE INVENTION

Computing device failures are a common occurrence. On some occasionssuch failures cause critical harm to the software running or stored onthe computing device. The damage or corruption of the software willcause programs running on the computing device to malfunction, resultingin programs not functioning in the way intended or even at all. When thedamage or corruption of software occurs, a common way to correct theproblem is to reimage or reinstall the software. In some instances,reimaging a particular software module or software program may besufficient to fix the issue. This solution is most common with softwarethat is nonessential to the general function of the computing device.

When essential software or multiple software programs fail, because ofdamage or corruption, more often the solution is to reimage the entireprogram, or even reimage the entire drive where the program is stored.When reimaging a drive, the drive may be wiped clean, resulting in theloss of all information on the drive.

In any of the above cases, whether it is necessary to reimage just asoftware module or the entire drive, the software failure or thereimaging process may disable certain abilities of the computing device,or the reimaging process may require certain interaction with thecomputing device. Examples of these issues include disabled inputdevices or required use of an input device. In some instances, thedisabled input device may hinder reimaging, and in other cases where therequired use of an input device may not be feasible if the input deviceis not available.

It is desirable to provide a method and apparatus for an automaticrecovery keyboard for reimaging of software without the use of certainperipheral devices.

SUMMARY OF THE INVENTION

At least in view of the above, it would be desirable to provide a methodand apparatus for an automatic recovery keyboard for reimaging ofsoftware without the use of a certain peripheral devices.

The foregoing needs are met, to a great extent, by certain embodimentsof the present invention. According to one such embodiment of thepresent invention, a recovery device for reimaging a computing device isprovided which can comprise a memory having at least one stored set ofinstructions for reimaging at least part of the contents of a computingdevice memory, a processor communicatively linked to the memory, andconfigured to access the memory, retrieve the instructions for reimagingand execute the instructions to reimage the computing device memory, anda connector configured to communicatively link the processor and thecomputing device.

According to another embodiment of the present invention, a method forreimaging a computing device using a recovery device, which cancomprising the steps of simulating a first input from an input device toenter the computing device's BIOS menu, simulating at least a secondinput from the input device to access the system boot options in theBIOS menu, simulating at least a third input from the input device todesignate the recovery device as a preferred boot device, simulating atleast a fourth input from the input device to exit the BIOS menu, andreimaging a memory of the computing device.

According to yet another embodiment of the present invention, a systemfor reimaging a computing device is provided which can comprise a meansfor storing at least one set of instructions for reimaging at least partof the contents of a computing device memory, a means for accessing themeans for storing, retrieving the instructions for reimaging, andexecuting the instructions to reimage the computing device memory, ameans for simulating inputs from an input device, and a means forcommunicatively connecting the system to a computing device.

There has thus been outlined, rather broadly, certain embodiments of theinvention in order that the detailed description thereof herein may bebetter understood, and in order that the present contribution to the artmay be better appreciated. There are, of course, additional embodimentsof the invention that will be described below and which will form thesubject matter of the claims appended hereto.

In this respect, before explaining at least one embodiment of theinvention in detail, it is to be understood that the invention is notlimited in its application to the details of construction and to thearrangements of the components set forth in the following description orillustrated in the drawings. The invention is capable of embodiments inaddition to those described and of being practiced and carried out invarious ways. Also, it is to be understood that the phraseology andterminology employed herein, as well as the abstract, are for thepurpose of description and should not be regarded as limiting.

As such, those skilled in the art will appreciate that the conceptionupon which this disclosure is based may readily be utilized as a basisfor the designing of other structures, methods and systems for carryingout the several purposes of the present invention. It is important,therefore, that the claims be regarded as including such equivalentconstructions insofar as they do not depart from the spirit and scope ofthe present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic view of a recovery device for reimaging of acomputing device according to an embodiment of the present invention.

FIG. 2 a is a top view of a recovery device for reimaging of a computingdevice according to an embodiment of the present invention.

FIG. 2 b is a side view of a recovery device for reimaging of acomputing device according to an embodiment of the present invention.

FIG. 3 is a flow diagram of a method for reimaging of a computing deviceusing a recovery device according to an embodiment of the presentinvention.

DETAILED DESCRIPTION

An embodiment of the present inventive method and apparatus for anautomatic recovery keyboard for reimaging of software may provide anapparatus for simulating the use of or replacing certain requiredperipherals for recovery by reimaging software (“recovery device”). Therecovery device may be employed to reimage an entire memory of acomputing device, an operating system, individual software and softwaremodules, and data stored on the computing device's memory.

The recovery device may include a processor to simulate inputs of aperipheral input device so as to eliminate the need for the inputdevice. An example of an input device that may not be needed when therecovery device is used is a keyboard. The processor of the recoverydevice may send signals to the computing device simulating a keystrokefrom a keyboard. The computing device may then interpret the signal as akeystroke or series of keystrokes from a keyboard and respondaccordingly. It is contemplated that other input devices may besimulated as well.

A memory may be included in the recovery device. The memory of therecovery device may serve a couple purposes. Firstly, this memory maystore instructions necessary to execute the recovery of the computingdevice. Such instructions may include which input signals to simulateand when to simulate them. The memory of the recovery device may also beused to provide the software and or data used to reimage the computingdevice. For example, the memory of the recovery device may contain thecode for software applications or operating systems that need to bereimaged, or it may contain copied of data that were stored on thecomputing device.

A further feature of the recovery device may be to have a selectionmeans, such as, for example, one or more DIP (dual in-line package)switches, to select options for reimaging the computing device. The oneor more selection means may be arranged in different ways to representand effect different options. Such options may include, for example,selecting the content with which to reimage the computing device, or thetype of computing device to be reimaged.

The recovery device may also be either a separate device from thecomputing device, or it may be integral to the computing device. If therecovery device is a separate device, then it may likely have a housingof its own and a connector, such as, for example, a USB (universalserial bus) connector, to put the recovery device in communication withthe computing device. The recovery device may even resemble a USB flashdrive. If the recovery device is integral to the computing device, thenit may be contained within the housing of the computing device andconnected to a common bus with the other components of the computingdevice.

The invention will now be described with reference to the drawingfigures, in which like reference numerals refer to like partsthroughout. FIG. 1 is a schematic diagram illustrating the recoverydevice 10 according to an embodiment of the present invention.

The recovery device 10 may include a processor 20, a memory 22, aconnector 24, a selecting device 26, and a housing 28. The electroniccomponents of the recovery device 10 may be interconnected by a datalink30. It is further contemplated that the recovery device 10 may beintegral to a computing device (not shown), and therefore may share someof these components with the computing device. Some such sharedcomponents may include, for example, the processor 20, the housing 28,the datalink 30.

The recovery device 10 may be a preprogrammed device, having been builtwith a predetermined purpose. A preprogrammed recovery device 10 may besuitable for use with only specific types of computing devices becauseit was only built for use with those computing devices. The programmedrecovery device 10 in such an instance may only have limited sets ofinstructions that allow for reimaging of predetermined kinds ofcomputing devices with certain software. The preprogrammed recoverydevice 10 may be configured to work with only one type of computingdevice, or multiple predetermined computing devices.

Conversely, the recovery device 10 may be programmable, allowing formodification of the function of the recovery device, such as to adaptthe recovery device 10 for use with multiple computing devices withvarying software configurations. The programmable recovery device 10 mayalso allow for storage of data from a computing device, much like abackup, so that the stored data may be reimaged if necessary.

Depending on the configuration of the recovery device 10, be itpreprogrammed or programmable, different types of processors 20 may besuitable for use in the recovery device 10. Thus, the processor 20 ofthe recovery device 10 may be, for example, an FPGA, a CLPD, a PLA, amicroprocessor, or a combination thereof.

The processor 20 may have the ability to sense a voltage or a currentbeing provided to the recovery device 10 from the computing device viathe connector 24, for example, a USB connector. Alternatively, a sensor(not shown) may be employed to sense the voltage or the current and senda signal to the processor 20 to indicate that the recovery device 10 isreceiving power.

Similarly, the configuration for the recovery device 10, be itpreprogrammed or programmable, may affect the choice of memory 22 usedin the recovery device 10. Other factors may also affect the choice ofmemory 22 type for use in the recovery device, such as whether therecovery device 10 is a unit unto itself or if it is integrated into acomputing device, and the size of what is stored it the memory. Thus,the memory 22 of the recovery device 10 may be, for example, optical,magnetic, solid state, read only, or rewritable.

The configuration of the recovery device 10 may also dictate the type ofconnector 24 employed, if at all. In some instances, for example, if therecovery device 10 were external to a computing device, the connector 24maybe of the type connectable to a serial port, a parallel port, orboth. The connector 24 may include on or more of USB, Micro-USB,FireWire, Ethernet, etc.

A multitude of hardware interface devices 32 may be employed such thatthe processor 20 may interface with the connector 24. In one embodimentof the recovery device 10, using USB for the connector 24, the interfacedevice 24 allows for the processor to send and receive data through theUSB connector. In such an instance, one option is that the interfacedevice 32 is a Cypress semiconductor, part number CY7C63413.

Now referring to FIGS. 2 a and 2 b, one embodiment of the recoverydevice 10 may have the housing 28 enclosing the majority of thecomponents of the recovery device 10. Still some of the components ofthe recovery device may extend through the housing 28. For example, theconnector 24 extends beyond the bounds of the housing 28 so that theconnector may be inserted into a port of the computing device. Inanother embodiment, the connector 24 may be retractable when not in use.There exist other possible constructions of the recovery device suchthat the connector 24 may not extend beyond the bounds of the housing28. The connector 24 may be a group of electrical contacts that areflush with or even recessed beneath the surface of the housing, like in,for example, and SD memory card or an Ethernet plug. In such anembodiment, the port in the computing device would have electricalcontacts arranged to meet with the electrical contacts of the connector24.

Also shown in the figures as extending beyond the housing is theselecting device 26. The selecting device 26 allows for the selection ofoptions for reimaging the computing device. Such options may include,but are not limited to, selecting the appropriate reimaging process forthe specific computing device, selecting certain software to bereimaged, selecting a certain operating system to be reimaged, andselecting data to be reimaged. The options may also include selectingthe correct reimaging software, for example, selecting Ghost by SymantecSoftware, or Recover Pro by Phoenix Software. The selecting device 26may allow for the selection of one or multiple options for reimaging thecomputing device. There are different ways to implement the selectingdevice 26. In one embodiment, the selecting device 26 may be on or moreDIP switches, each of which may turn on or off a single option, or thecombination of DIP switch settings may be interpreted to signify acombination of options. The selecting device 26 may also be implementedby, for example, buttons, slide bars, knobs, or touch sensitive inputs.

The computing device previously mentioned (not shown) may include aninput device, a memory, a communication device, a processor, and adisplay, all of which can be interconnected by a data link. Thecomputing device may be a general computer, such as a personal computer(PC), a UNIX workstation, a server, a mainframe computer, a personaldigital assistant (PDA), a cellular phone, a smart phone, or somecombination of these. Alternatively, the computing device may be aspecialized computing device, such as a vehicle diagnostic scan tool ora vehicle communication interface. An example of the computing devicemay be a slate tablet computer, generally one that does not havephysical keyboard. Such slate tablet computers may be manufactured by,for example, Panasonic, Motion Computing, TabletKiosk, Getac, Fujitsu,DT Research, or Itronics. Another example of a computing device may bethe AGCO Electronic Diagnostic Tool. The remaining components caninclude programming code, such as source code, object code or executablecode, stored on a computer-readable medium that can be loaded into thememory and processed by the processor in order to perform desiredfunctions.

In various embodiments, the computing device and the connector 24 may becoupled to a communication network (not shown). The communicationnetwork allows for communication between the computing device and theconnector 24, which allows information to pass between the computingdevice and the recovery device 10.

The computing device can be coupled to the communication network by wayof the communication device, which in various embodiments canincorporate any combination of devices—as well as any associatedsoftware or firmware—configured to couple processor-based systems. Suchcommunication devices may include modems, network interface cards,serial buses, parallel buses, LAN or WAN interfaces, wired, wireless oroptical interfaces, and the like, along with any associated transmissionprotocols, as may be desired or required by the design. Variousembodiments of the communication network may include any viablecombination of devices and systems capable of linking computer-basedsystems, such as USB; Bluetooth; Wi-Fi; the Internet; an intranet orextranet; a local area network (LAN); a wide area network (WAN); adirect cable connection; a private network; a public network; anEthernet-based system; a token ring; a value-added network; atelephony-based system, including, for example, T1 or E1 devices; anAsynchronous Transfer Mode (ATM) network; a wired system; a wirelesssystem; an optical system; a combination of any number of distributedprocessing networks or systems or the like.

Additionally, an embodiment of the computing device can communicateinformation to the user through the display and request user inputthrough the input device by way of an interactive, menu-driven, visualdisplay-based user interface, or graphical user interface (GUI). Asdescribed above, the recovery device 10 may respond to these requestsfor user input through simulating input device signals of input devicessuch as, for example, a pointing device, such as a mouse or a stylus,keys, buttons, a trackball, a scroll wheel, a touch sensitive pad, atouch screen, or a voice-activated system to select from a variety ofselectable fields, including selectable menus, drop-down menus, tabs,buttons, bullets, checkboxes, text boxes, and the like.

The memory may include, for example, any form or combination ofvolatile, solid state, magnetic, optical, permanent, removable,writable, rewriteable, and read-only memory. The memory may contain anumber of instructions for use with the computing device. The memory ofthe computing device may also be the memory 22 of the recovery device10. In the case where the memory of the computing device and therecovery device 10 is shared, there may be a partitioned section of thememory to store the instructions, software, and data for use with therecovery device.

Referring now to FIG. 3, illustrated is a flow diagram of a method forreimaging of a computing device using the recovery device 50 accordingto an embodiment of the present invention. Any or all of the followingsteps to reimage the computing device may be initiated manually or occurautomatically. Initially, if the recovery device 10 is a separate devicefrom the computing device, one may have to connect the recovery device10 to the computing device prior to booting the computing device (step60). Also prior to booting the computing device, one may choose to makeoption selections for reimaging the computing device by setting theselecting device 26 (step 62). Setting the selecting device 26 mayinclude, but is not limited to, setting options for selecting theappropriate reimaging process for the specific computing device,selecting certain software to be reimaged, selecting a certain operatingsystem to be reimaged, selecting data to be reimaged, and selecting thecorrect reimaging software. Selecting the reimaging options mayoptionally occur before connecting the recovery device to the computingdevice when the two devices are separate. Following connecting therecovery device (step 60), if necessary, and making option selectionsfor reimaging the computing device (step 62), the computing deviceshould be booted (step 64).

When the computing device begins to boot, the recovery device may sensethat it is receiving power from the computing device and the recoverydevice begins to simulate inputs from an input device in order to getthe computing device to boot from the recovery device (step 66). Thesimulated inputs and the timing for which they should be simulated mayvary depending on a number of factors. The recovery device 10 may holdfor predetermined amounts of time prior to each simulating step toensure that the simulating step is executed when the computing device isready to accept the simulated input. The predetermined amounts of timemay differ for the individual simulating steps. Thus, the following issimply an exemplary embodiment of implementing step 66, and it should beunderstood that the number, type, and timing of the simulated inputs maybe designed for any application. In executing step 66, the recoverydevice 10 may simulate a first input from an input device to enter thecomputing device BIOS menu (step 66 a). Then, the recovery device 10 maysimulate, at least, a second input from the input device to access thesystem boot options in the BIOS menu (step 66 b), and simulate, atleast, a third input from the input device to designate the recoverydevice 10 as the preferred boot device (step 66 c). Once, the recoverydevice 10 is set as the preferred boot device, it may simulate, atleast, a fourth input from the input device to exit the BIOS menu (step66 d).

Once step 66 is complete, the recovery device 10 may reimage a memory ofthe computing device (step 68). As before, any inputs simulated by therecovery device 10 may be generated in varying types, numbers, and atvarying time intervals depending on the application of the recoverydevice 10. To reimage the computing device, the recovery device mayinitiate installation or recovery software, or copy data to thecomputing device's memory (step 68 a). Once, any software has beeninitiated and is running, the recovery device 10 may be required tosimulate further inputs in response to prompts from the software (step68 b).

FIGS. 1-3 are diagrams and flowcharts of methods and systems accordingto various embodiments of the present invention. It will be understoodthat the steps of the flowchart illustration, and combinations of stepsin the flowchart illustration, can be implemented by computer programinstructions or other means. Although computer program instructions arediscussed, an apparatus according to the present invention can includeother means, such as hardware or some combination of hardware andsoftware, including one or more processors or controllers, forperforming the disclosed functions.

Typically, computer program instructions, such as portions of theinstructions for reimaging a computing device, may be loaded onto thecomputer or other general purpose programmable machine, such as therecovery device 10, to produce a specialized machine, such that theinstructions that execute on the computer or other programmable machinecreate means for implementing the functions specified in the flowchart.Such computer program instructions may also be stored in acomputer-readable medium that when loaded into a computer or otherprogrammable machine can direct the machine to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instruction meansthat implement the function specified in the flowchart.

In addition, the computer program instructions may be loaded into acomputing device or other programmable machine, such as the recoverydevice 10, to cause a series of operational steps to be performed by thecomputing device or other programmable machine to produce acomputer-implemented process, such that the instructions that execute onthe computer or other programmable machine provide steps forimplementing the functions specified in the flowchart steps.

Accordingly, steps of the flowchart support combinations of means forperforming the specified functions, combinations of steps for performingthe specified functions and program instruction means for performing thespecified functions. It will also be understood that each step of theflowchart, as well as combinations of steps, can be implemented byspecial purpose hardware-based computer systems, or combinations ofspecial purpose hardware and computer instructions, that perform thespecified functions or steps.

As an example, provided for purposes of illustration only, a data inputsoftware tool of a search engine application can be a representativemeans for receiving a query including one or more search terms. Similarsoftware tools of applications, or implementations of embodiments of thepresent invention, can be means for performing the specified functions.

The many features and advantages of the invention are apparent from thedetailed specification, and thus, it is intended by the appended claimsto cover all such features and advantages of the invention which fallwithin the true spirit and scope of the invention. Further, sincenumerous modifications and variations will readily occur to thoseskilled in the art, it is not desired to limit the invention to theexact construction and operation illustrated and described, andaccordingly, all suitable modifications and equivalents may be resortedto, falling within the scope of the invention.

1. A recovery device for reimaging a computing device, comprising: a memory having at least one stored set of instructions for reimaging at least part of stored contents of a computing device memory; a processor communicatively linked to the memory, and configured to access the memory, retrieve the at least one stored set of instructions for reimaging and execute the at least one stored set of instructions to reimage the computing device memory, wherein the at least one stored set of instructions include the steps of: simulating a first input from an input device to enter the computing device's BIOS (Basic Input/Output System) menu; simulating a second input from the input device to access system boot options in the computing device's BIOS menu; simulating a third input from the input device to designate the recovery device as a preferred boot device; simulating a fourth input from the input device to exit the computing device's BIOS menu; and reimaging the computing memory; and a connector to communicatively link the processor and the computing device.
 2. The recovery device of claim 1, further comprising at least one selecting device to set an option for the reimaging of the computing device.
 3. The recovery device of claim 2, wherein the option for the reimaging of the computing device is selected from a group consisting of reimaging a select software, reimaging an operating system, reimaging a stored data, the type of computing device to be reimaged, and the software used to reimage the computing device.
 4. The recovery device of claim 1, further comprising a housing enclosing at least the memory and the processor.
 5. The recovery device of claim 4, further comprising a DIP switch configured to set an option of the reimaging of the computing device, wherein the DIP switch protrudes through the housing.
 6. The recovery device of claim 4, wherein the connector protrudes through the housing.
 7. The recovery device of claim 1, wherein the connector is a USB connector.
 8. The recovery device of claim 1, further comprising a semiconductor communicatively connected to the connector and the processor.
 9. The recovery device of claim 1, wherein the memory, the processor and the connector of the recovery device are integral to the computing device.
 10. The recovery device of claim 9, further comprising a DIP switch configured to set an option of the reimaging of the computing device, wherein the DIP switch protrudes through a computing device housing.
 11. The recovery device of claim 1, wherein the recovery device is configured to automatically reimage the computing device.
 12. A method for reimaging a computing device using a recovery device, comprising the steps of: retrieving at least one set of instructions for reimaging at least part of stored contents of a computing device memory from a recovery device memory; executing the retrieved at least one set of instructions with a recovery device processor; simulating a first input from an input device to enter the computing device's BIOS (Basic Input/Output System) menu with the recovery device processor; simulating a second input from the input device to access the system boot options in the computing device's BIOS menu with the recovery device processor; simulating a third input from the input device to designate the recovery device as a preferred boot device with the recovery device processor; simulating a fourth input from the input device to exit the computing device's BIOS menu with the recovery device processor; and reimaging a memory of the computing device via a connector communicatively linked between the recovery device processor and the computing device.
 13. The method of claim 12, further comprising the step of communicatively attaching the recovery device to the computing device prior to booting the computing device.
 14. The method of claim 12, further comprising the step of selecting an option to designate what to reimage on the memory of the computing device.
 15. The method of claim 14, wherein the selecting the option is selected from a group consisting of reimaging a select software, reimaging an operating system, reimaging a stored data, the type of computing device to be reimaged, and the software used to reimage the computing device.
 16. The method of claim 12, further comprising the step of holding for a predetermined amount of time prior to each simulating step to ensure that each respective simulating step is executed only when the computing device is ready to accept the corresponding first, second, third or fourth simulated input.
 17. The method of claim 16, wherein the predetermined amount of time differs for each individual simulating steps.
 18. The method of claim 12, further comprising a step of simulating a plurality of inputs from the input device to execute a computing device reimaging program.
 19. The method of claim 12, wherein the first, second, third, and fourth simulated inputs from the input device represent keystrokes from a keyboard.
 20. The method of claim 12, wherein reimaging the memory of the computing device occurs automatically.
 21. A system for reimaging a computing device, comprising: a non-transitory means for storing at least one set of instructions for reimaging at least part of stored contents of a computing device memory; a means for accessing the non-transitory means for storing, retrieving the instructions for reimaging, and executing the instructions to reimage the computing device memory, wherein the instructions include the steps of: simulating a first input from an input device to enter the computing device's BIOS (Basic Input/Output System) menu; simulating a second input from the input device to access system boot options in the computing device's BIOS menu; simulating a third input from the input device to designate the recovery device as a preferred boot device; simulating a fourth input from the input device to exit the computing device's BIOS menu; and reimaging the computing device memory; and a means for communicatively connecting the system to the computing device.
 22. The system of claim 21, further comprising a means for selecting an option to designate what to reimage on the memory of the computing device, wherein the option is selected from a group consisting of reimaging a select software, reimaging an operating system, reimaging a stored data, and the type of computing device to be reimaged.
 23. The system of claim 21, wherein the system is configured to automatically reimage the computing device. 